package com.weidft.biz.calc.cost;

import com.weidft.biz.calc.Param;
import com.weidft.biz.calc.constants.Cons;

public class ReChuLi extends ACost {

    public ReChuLi(Param param) {
        super(param);
    }

    public float getBasePrice() {
        return 441.05f;
    }

    public String getName() {
        return Cons.RE_CHU_LI;
    }

    public float getCost() {
        float value = param.getLaiLiaoXiShu();
        value *= param.getCaiZhiXiShu();
        value *= param.getXingZhuangXiShu();
        float a1 = 1.6f * param.getZhongLiang() * param.getZhengHouCiShu() / 1000;
        float a2 = 0.8f * param.getZhongLiang() * param.getTuiHouCiShu() / 1000;
        value *= (a1 + a2);
        value *= getBasePrice();
        value += param.getGuRongFei();
        return value;
    }

    public String getFormual() {
        StringBuffer sb = new StringBuffer();
        sb.append(getName()).append("=");
        sb.append(Cons.LAILIAO_XISHU).append(Cons.OP_CHEN);
        sb.append(Cons.CAIZHI_XISHU).append(Cons.OP_CHEN);
        sb.append(Cons.XINGZHUANG_XISHU).append(Cons.OP_CHEN);
        sb.append("(");
        sb.append(1.6).append(Cons.OP_CHEN);
        sb.append(Cons.ZHONGLIANG).append(Cons.OP_CHEN);
        sb.append(Cons.ZHENGHUO_CISHU).append(Cons.OP_CHU).append(1000);
        sb.append(Cons.OP_JIA);
        sb.append(0.8).append(Cons.OP_CHEN);
        sb.append(Cons.ZHONGLIANG).append(Cons.OP_CHEN);
        sb.append(Cons.TUIHUO_CISHU).append(Cons.OP_CHU).append(1000);
        sb.append(")").append(Cons.OP_CHEN);
        sb.append(Cons.JICHU_DANJIA).append(Cons.OP_JIA);
        sb.append(Cons.GURONG_FEI);
        return sb.toString();
    }

    public String getCalculateProcess() {
        StringBuffer sb = new StringBuffer();
        sb.append(getName()).append("=");
        sb.append(param.getLaiLiaoXiShu()).append(Cons.OP_CHEN);
        sb.append(param.getCaiZhiXiShu()).append(Cons.OP_CHEN);
        sb.append(param.getXingZhuangXiShu()).append(Cons.OP_CHEN);
        sb.append("(");
        sb.append(1.6).append(Cons.OP_CHEN);
        sb.append(param.getZhongLiang()).append(Cons.OP_CHEN);
        sb.append(param.getZhengHouCiShu()).append(Cons.OP_CHU).append(1000);
        sb.append(Cons.OP_JIA);
        sb.append(0.8).append(Cons.OP_CHEN);
        sb.append(param.getZhongLiang()).append(Cons.OP_CHEN);
        sb.append(param.getTuiHouCiShu()).append(Cons.OP_CHU).append(1000);
        sb.append(")").append(Cons.OP_CHEN);
        sb.append(getBasePrice()).append(Cons.OP_JIA);
        sb.append(param.getGuRongFei());
        return sb.toString();
    }

    private Param param;
}
